//
// Created by Administrator on 2021/11/14.
//
/* 结点的权:有某种现实含义的数值（如:表示结点的重要性等)
 * 结点的带权路径长度:从树的根到该结点的路径长度（经过的边数）与该结点上权值的乘积
 * 树的带权路径长度:树中所有叶结点的带权路径长度之和(WPL)
 * 在含有n个带权叶结点的二叉树中，其中带权路径长度（WPL)最小的二叉树称为哈夫曼树，也称最优二叉树
*/
/*给定n个权值分别为w,, w2... wn,的结点，构造哈夫曼树的算法描述如下:
 * 1)将这n个结点分别作为n棵仅含一个结点的二叉树，构成森林F。
 * 2）构造一个新结点，从F中选取两棵根结点权值最小的树作为新结点的左、右子树，并且将新结点的权值置为左、右子树上根结点的权值之和。
 * 3）从F中删除刚才选出的两棵树，同时将新得到的树加入F中。
 * 4)重复步骤2）和3），直至F中只剩下一棵树为止。*/